// 版权所有 Epic Games, Inc. 保留所有权利。

#pragma once

#include "Engine/DataAsset.h"

#include "LyraGameData.generated.h"

#define UE_API LYRAGAME_API

class UGameplayEffect;
class UObject;

/**
 * ULyraGameData
 *
 *	包含全局游戏数据的不可变数据资源。
 */
UCLASS(MinimalAPI, BlueprintType, Const, Meta = (DisplayName = "Lyra Game Data", ShortTooltip = "包含全局游戏数据的数据资源。"))
class ULyraGameData : public UPrimaryDataAsset
{
	GENERATED_BODY()

public:

	UE_API ULyraGameData();

	// 返回已加载的游戏数据。
	static UE_API const ULyraGameData& Get();

public:

	// 用于应用伤害的游戏效果。对伤害量使用SetByCaller。
	UPROPERTY(EditDefaultsOnly, Category = "默认游戏效果", meta = (DisplayName = "伤害游戏效果 (SetByCaller)"))
	TSoftClassPtr<UGameplayEffect> DamageGameplayEffect_SetByCaller; // 伤害游戏效果（SetByCaller）

	// 用于应用治疗的游戏效果。对治疗量使用SetByCaller。
	UPROPERTY(EditDefaultsOnly, Category = "默认游戏效果", meta = (DisplayName = "治疗游戏效果 (SetByCaller)"))
	TSoftClassPtr<UGameplayEffect> HealGameplayEffect_SetByCaller; // 治疗游戏效果（SetByCaller）

	// 用于添加和移除动态标签的游戏效果。
	UPROPERTY(EditDefaultsOnly, Category = "默认游戏效果")
	TSoftClassPtr<UGameplayEffect> DynamicTagGameplayEffect; // 动态标签游戏效果
};

#undef UE_API